package 简单.其他;

import java.util.List;

/**
 * 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。
 * 对于任意下标 i，nums[i] = [starti, endi] ，其中 starti 是第 i 辆
 * 车的起点，endi 是第 i 辆车的终点。
 * 返回数轴上被车 任意部分 覆盖的整数点的数目。
 *
 * @ https://leetcode.cn/problems/points-that-intersect-with-cars/description/?envType=daily-question&envId=2024-09-15
 * date 2024/09/15
 */
public class 与车相交的_2848 {

    public static void main(String[] args) {

    }

    /**
     * 排序+排除重复的区间
     */
    public int numberOfPoints(List<List<Integer>> nums) {
        nums.sort((a, b) -> a.get(0) - b.get(0));
        int ans = 0;
        int curMax = nums.get(0).get(0);

        for (List<Integer> num : nums) {
            if (num.get(1) < curMax) {
                continue;
            }
            ans += num.get(1) - Math.max(curMax, num.get(0)) + 1;
            curMax = num.get(1) + 1;
        }

        return ans;
    }

}
